import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { CoreModule } from '@abp/ng.core';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzSpaceModule } from 'ng-zorro-antd/space';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzSelectModule } from 'ng-zorro-antd/select';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzDividerModule } from 'ng-zorro-antd/divider';
import { EntityRefSelectComponent } from './entity-ref-select/entity-ref-select.component';
import { EntitySelectComponent } from './entity-select/entity-select.component';
import { EntityFormButtonsComponent } from './entity-form-buttons/entity-form-buttons.component';
import { ListFormButtonsComponent } from './list-form-buttons/list-form-buttons.component';
import { TreeFormButtonsComponent } from './tree-form-buttons/tree-form-buttons.component';

@NgModule({
  declarations: [
    EntityRefSelectComponent,
    EntitySelectComponent,
    EntityFormButtonsComponent,
    ListFormButtonsComponent,
    TreeFormButtonsComponent,
  ],
  imports: [
    CommonModule,
    FormsModule,
    ReactiveFormsModule,
    CoreModule,
    NzIconModule,
    NzButtonModule,
    NzSpaceModule,
    NzDropDownModule,
    NzSelectModule,
    NzInputModule,
    NzDividerModule,
  ],
  exports: [
    EntityRefSelectComponent,
    EntitySelectComponent,
    EntityFormButtonsComponent,
    ListFormButtonsComponent,
    TreeFormButtonsComponent,    
  ],
})
export class WidgetModule {}
